const express = require('express');
const router = express.Router();
const db = require('../../../../util/dbConfig/dbConfig')
const dateReplace = require('../../../../public/javascripts/timeFormat')

//修改
router.post('/',async (req,res) => {
    //模拟数据
    // let obj = {
    //     ID:1,  // 配种信息编号
    //     eweId:1,         //母羊编号
    //     ramId:2,         //公羊编号
    //     //以上为修改条件的索引
    //     //以下为修改的内容，不可为空，若为空，填入无信息
    //     begin_date:'2021-11-11T12:15:01Z',     //放栓时间(母)
    //     finish_date:'2021-11-15T12:15:01Z',    //撤栓时间(母)
    //     PMSG:41.02,           //PMSG(母)
    //     PG:46.01,             //PG(母)
    //     adopt_precise:454.01,  //采精量(公)
    //     vitality:46,       //精液活力(公)
    //     density:454,        //精液密度(公)
    //     dilution_ratio:451.00, //稀释倍数(公)
    //     date:'2021-11-10T12:15:01Z',           //采集日期(公)
    //     heat_firm1_date:'2021-11-10T12:15:01Z',    //第一次发情日期(母)
    //     heat_firm1_number:1,    //第一次发情数量(母)
    //     heat_firm2_date:'2021-11-10T12:15:01Z',    //第二次发情日期(母)
    //     heat_firm2_number:1,    //第二次发情数量(母)
    //     sperm_record1:4.51,      //第一次输精量(公)
    //     sperm_record1_date:'2021-11-10T12:15:01Z', //第一次输精时间(公)
    //     sperm_record2:45.02,      //第二次输精量(公)
    //     sperm_record2_date:'2021-11-10T12:15:01Z', //第二次输精时间(公)
    //     remark:null,             //备注
    // }
    let {
        ID,  // 配种信息编号
        eweId,         //母羊编号
        ramId,         //公羊编号
        //以上为修改条件的索引
        //以下为修改的内容，不可为空，若为空，填入无信息
        begin_date,     //放栓时间(母)
        finish_date,    //撤栓时间(母)
        PMSG,           //PMSG(母)
        PG,             //PG(母)
        adopt_precise,  //采精量(公)
        vitality,       //精液活力(公)
        density,        //精液密度(公)
        dilution_ratio, //稀释倍数(公)
        date,           //采集日期(公)
        heat_firm1_date,    //第一次发情日期(母)
        heat_firm1_number,    //第一次发情数量(母)
        heat_firm2_date,    //第二次发情日期(母)
        heat_firm2_number,    //第二次发情数量(母)
        sperm_record1,      //第一次输精量(公)
        sperm_record1_date, //第一次输精时间(公)
        sperm_record2,      //第二次输精量(公)
        sperm_record2_date, //第二次输精时间(公)
        remark,             //备注

    } = req.body
    //格式化时间
    begin_date =  await dateReplace(begin_date,res)
    finish_date =  await dateReplace(finish_date,res)
    date =  await dateReplace(date,res)
    heat_firm1_date =  await dateReplace(heat_firm1_date,res)
    heat_firm2_date =  await dateReplace(heat_firm2_date,res)
    sperm_record1_date =  await dateReplace(sperm_record1_date,res)
    sperm_record2_date =  await dateReplace(sperm_record2_date,res)
    //判断三个参数是否存在和是否有值
    if(!ID || !eweId || !ramId){
        return res.send({
            code: 1,
            msg: '参数错误'
        })
    }
    //修改的参数
    let arr = [
        begin_date,     //放栓时间(母)
        finish_date,    //撤栓时间(母)
        PMSG,           //PMSG(母)
        PG,             //PG(母)
        adopt_precise,  //采精量(公)
        vitality,       //精液活力(公)
        density,        //精液密度(公)
        dilution_ratio, //稀释倍数(公)
        date,           //采集日期(公)
        heat_firm1_date,    //第一次发情日期(母)
        heat_firm1_number,    //第一次发情数量(母)
        heat_firm2_date,    //第二次发情日期(母)
        heat_firm2_number,    //第二次发情数量(母)
        sperm_record1,      //第一次输精量(公)
        sperm_record1_date, //第一次输精时间(公)
        sperm_record2,      //第二次输精量(公)
        sperm_record2_date, //第二次输精时间(公)
    ]
    //判断修改参数是否有值
    for(let i = 0;i < arr.length-1 ; i++){
        if(arr[i] === null){
            return res.send({
                code: 1,
                msg: '不允许修改的数据无内容'
            })
        }
        if(arr[i].type === String){
            arr[i].type = Number
        }
    }
    try{
        let upSql = `update hybridization 
        set BEGIN_DATE=?,
        FINISH_DATE=?,
        PMSG=?,
        PG=?,
        ADOPT_PRECISE=?,
        VITALITY=?,
        DENSITY=?,
        DILUTION_RATIO=?,
         DATE=?,
         HEAT_FIRM1_DATE=?,
         HEAT_FIRM1_NUMBER=?,
         HEAT_FIRM2_DATE=?,
         HEAT_FIRM2_NUMBER=?,
         SPERM_RECORD1=?,
         SPERM_RECORD1_DATE=?,
         SPERM_RECORD2=?,
         SPERM_RECORD2_DATE=?`
        if(remark !== ' ' ){
            upSql = upSql+ `,remark=${remark}`
        }
        upSql = upSql + ' ' + `where ID=${ID} and EWE_ID=${eweId} and RAM_ID=${ramId}`
        let result = await db.SySqlConnect(upSql,arr)
        if(result.changedRows !==0){
            return res.send({
                code: 0,
                msg: '修改成功'
            })
        }else {
            return res.send({
                code: 2,
                msg: '修改失败'
            })
        }
    }catch (e) {
        console.log(e);
        return res.send({
            code: 4,
            msg: '服务器错误，请稍后再试'
        })
    }
})

module.exports = router
